package xml.io;



import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import xml.parserSAX.SAXException;

/**
 * Clase que es a partir de la cual se crea el objeto que me sirve para leer el 
 * archivo .xml
 * @author Diego Atayra, Lucas Pera
 *
 */
public abstract class xmlReader {

	/**
	 * Metodo statico que lee el archivo .xml que le paso por parametro 
	 * @param file es el archivo .xml que quiero leer
	 * @return read es el contenido del archivo
	 * @throws SaxException el tipo de error que se puede generar al leer el archivo con el parser SAX
	 * @throws IOException 
	 */
	public static String[] read(File file) throws SAXException, IOException {
		FileReader reader = null; //creo un objeto del tipo FileReader
		StringBuffer read = new StringBuffer(); //creo la intancia del Buffer en el que voy a cargar el contenido del archivo 
		read.append(""); //inicialixo el contenido del objeto
		
		try {
			
			reader = new FileReader(file); //creo la instancia del reader
			int i = -1;
			do {
				i = reader.read(); //leo caracter a caracter
				if (i != -1) {
					char c = (char) i; //convierto el byte en caracter
					read.append(c);//lo agrego al Buffer
				}
			} while (i != -1);
		} catch (Exception ex) {
			throw new SAXException(SAXException.Tipo.FATAL_ERROR, ex.getMessage());
		} finally {
			try {
				reader.close();
			} catch (Exception ex) {
				throw new IOException("No se encontro el archivo XML: " + file.getPath()); 
								
			}
		}
		return XmlTokenizer.separar(read.toString());
		//return read.toString();
	}
	
	
	

}
